| Name |
Status |
Type |
Time(s) |
| Do-while loop should NOT convert (semantic incompatibility)
๐
|
Success |
|
2.084 |
| For-each loop adding to empty list followed by sort - CAUTION: mutability issue
๐
|
Success |
|
0.844 |
| Iterator with internal hasNext() check should NOT convert
๐
|
Success |
|
0.239 |
| Classic while-loop should NOT convert (no collection iteration)
๐
|
Success |
|
0.158 |
| Index-based for-loop to IntStream.range()
๐
|
Success |
|
0.321 |
| BUGGY BEHAVIOR: Multiple loops overwrite list instead of accumulating
๐
|
Skipped |
FIXED: Bug has been fixed - multiple loops now use Stream.concat() |
0.000 |
| Do-while with guaranteed execution should NOT convert
๐
|
Success |
|
0.231 |
| Index-based collection loop to IntStream.range()
๐
|
Success |
|
0.240 |
| While-loop with method call condition should NOT convert
๐
|
Success |
|
0.150 |
| Multiple for-each loops populating same list should use Stream.concat()
๐
|
Success |
|
0.358 |
| Multiple iterators should NOT convert (no zip() in Java)
๐
|
Success |
|
0.112 |
| Name |
Status |
Type |
Time(s) |
| Null-safe map: filter(item -> item != null).map()
๐
|
Success |
|
0.081 |
| Filter-map-collect: stream().filter().map().collect()
๐
|
Success |
|
0.152 |
| Combined filter: single filter with && condition
๐
|
Success |
|
0.122 |
| Map-filter-map: multi-step transformation
๐
|
Success |
|
0.148 |
| Filter-first: stream().filter().map().forEach()
๐
|
Success |
|
0.105 |
| Complex chain: multiple transformations
๐
|
Skipped |
TODO: Complex stream chains with multiple intermediate variables not yet implemented - produces forEach with block |
0.000 |
| Multiple filters: sequential conditions
๐
|
Success |
|
0.040 |
| Name |
Status |
Type |
Time(s) |
| Stream โ for: chained stream ops (map) should NOT convert
๐
|
Success |
|
0.101 |
| Stream โ while: comments in lambda body are preserved
๐
|
Success |
|
0.648 |
| Stream โ for: forEach to enhanced for-loop
๐
|
Success |
|
0.087 |
| for โ while: Enhanced for to iterator while-loop
๐
|
Success |
|
0.490 |
| Stream โ for: comments in lambda body are preserved
๐
|
Success |
|
0.093 |
| while โ for: Iterator while-loop to enhanced for
๐
|
Success |
|
0.074 |
| Stream โ for: chained stream ops (filter) should NOT convert
๐
|
Success |
|
0.103 |
| for โ Stream: Basic forEach transformation
๐
|
Success |
|
0.079 |
| Iterator โ Stream: while-iterator to forEach
๐
|
Success |
|
0.083 |
| for โ while: comments in body are preserved
๐
|
Success |
|
0.386 |
| while โ for: iterator.remove() should NOT convert
๐
|
Success |
|
0.060 |
| for โ Stream: basic transformation succeeds
๐
|
Success |
|
0.075 |
| while โ for: comments in body are preserved
๐
|
Success |
|
0.107 |
| Name |
Status |
Type |
Time(s) |
| Should NOT detect modification on different collection
๐
|
Success |
|
0.001 |
| Should NOT detect getter with arguments
๐
|
Success |
|
0.002 |
| Should NOT detect non-matching getter name
๐
|
Success |
|
0.001 |
| Should detect list.addAll() modification
๐
|
Success |
|
0.003 |
| Should detect map.computeIfPresent() modification
๐
|
Success |
|
0.001 |
| Should detect list.clear() modification
๐
|
Success |
|
0.001 |
| Should detect list.remove() modification
๐
|
Success |
|
0.000 |
| Should detect list.replaceAll() modification
๐
|
Success |
|
0.006 |
| Should detect fetchMap().put() modification
๐
|
Success |
|
0.001 |
| Should detect retrieveData().clear() modification
๐
|
Success |
|
0.004 |
| Should detect list.add() modification
๐
|
Success |
|
0.001 |
| Should detect getList().remove() modification
๐
|
Success |
|
0.001 |
| Should detect this.list.remove() modification
๐
|
Success |
|
0.004 |
| Should detect map.compute() modification
๐
|
Success |
|
0.001 |
| Should detect map.replace() modification
๐
|
Success |
|
0.001 |
| Should detect map.putIfAbsent() modification
๐
|
Success |
|
0.000 |
| Should detect getItems().add() modification
๐
|
Success |
|
0.003 |
| Should detect map.merge() modification
๐
|
Success |
|
0.001 |
| Should detect map.computeIfAbsent() modification
๐
|
Success |
|
0.001 |
| Should detect map.put() modification
๐
|
Success |
|
0.004 |
| Should detect list.removeIf() modification
๐
|
Success |
|
0.000 |
| Should NOT detect getList().get() - non-modifying method
๐
|
Success |
|
0.000 |
| Should detect list.sort() modification
๐
|
Success |
|
0.000 |
| Should NOT detect non-modifying methods
๐
|
Success |
|
0.004 |
| Name |
Status |
Type |
Time(s) |
| FilterOp with comments triggers block lambda rendering
๐
|
Success |
|
0.015 |
| Empty comments are not stored
๐
|
Success |
|
0.018 |
| Extract trailing comments on same line
๐
|
Success |
|
0.068 |
| End-to-end: trailing inline comments are attached to operations
๐
|
Success |
|
0.057 |
| MapOp with comments triggers block lambda rendering
๐
|
Success |
|
0.072 |
| Operations without comments use compact lambda
๐
|
Success |
|
0.018 |
| Extract comments from loop with leading comment
๐
|
Success |
|
0.038 |
| End-to-end: comments before if-continue are attached to FilterOp
๐
|
Success |
|
0.040 |
| End-to-end: filter with trailing comment preserved
๐
|
Success |
|
0.040 |
| Extract comments from different positions in loop
๐
|
Success |
|
0.035 |
| Multiple operations can have independent comments
๐
|
Success |
|
0.018 |
| Name |
Status |
Type |
Time(s) |
| Should detect CopyOnWriteArraySet as concurrent
๐
|
Success |
|
0.478 |
| Should detect by qualified name - CopyOnWriteArrayList
๐
|
Success |
|
0.000 |
| Should NOT detect by qualified name - ArrayList
๐
|
Success |
|
0.003 |
| Should detect CopyOnWriteArrayList as concurrent
๐
|
Success |
|
0.017 |
| Should detect ConcurrentHashMap as concurrent
๐
|
Success |
|
0.024 |
| Should detect by qualified name - ConcurrentHashMap
๐
|
Success |
|
0.001 |
| Should NOT detect HashMap as concurrent
๐
|
Success |
|
0.024 |
| Should handle null type binding
๐
|
Success |
|
0.000 |
| Should detect ConcurrentSkipListMap as concurrent
๐
|
Success |
|
0.022 |
| Should detect ConcurrentLinkedQueue as concurrent
๐
|
Success |
|
0.017 |
| Should NOT detect ArrayList as concurrent
๐
|
Success |
|
0.014 |
| Should detect LinkedBlockingQueue as concurrent
๐
|
Success |
|
0.011 |
| Should NOT detect LinkedList as concurrent
๐
|
Success |
|
0.009 |
| Should handle null qualified name
๐
|
Success |
|
0.000 |
| Name |
Status |
Type |
Time(s) |
| list.removeIf() should block conversion
๐
|
Success |
|
0.097 |
| getItems().clear() should block conversion when iterating items
๐
|
Success |
|
0.057 |
| this.items.add() should block conversion when iterating same field
๐
|
Success |
|
0.087 |
| list.replaceAll() on iterated collection should block conversion
๐
|
Success |
|
0.084 |
| map.putIfAbsent() on different collection allows conversion
๐
|
Success |
|
0.126 |
| CopyOnWriteArrayList - simple forEach conversion should work
๐
|
Success |
|
0.165 |
| ConcurrentHashMap - simple forEach conversion should work
๐
|
Success |
|
0.136 |
| map.computeIfAbsent() on different collection allows conversion
๐
|
Success |
|
0.136 |
| map.merge() on different collection allows conversion
๐
|
Success |
|
0.140 |
| list.sort() on iterated collection should block conversion
๐
|
Success |
|
0.099 |
| getList().remove() should block conversion
๐
|
Success |
|
0.146 |
| map.compute() on different collection allows conversion
๐
|
Success |
|
0.164 |
| Name |
Status |
Type |
Time(s) |
| Indexed array loop with neighbor access (i+1) - should NOT convert
๐
|
Success |
|
0.056 |
| Indexed loop with previous element access (i-1) - should NOT convert
๐
|
Success |
|
0.046 |
| Loop with list.remove() - should NOT convert
๐
|
Success |
|
0.052 |
| Iterator loop on CopyOnWriteArrayList with iterator.remove() - should NOT convert
๐
|
Success |
|
0.053 |
| Loop with map.put() on iterated map - should NOT convert (BUG)
๐
|
Skipped |
BUG: Collection modification detection not blocking conversion - Issue #670 |
0.000 |
| Loop with index arithmetic (i*2) - should NOT convert
๐
|
Success |
|
0.053 |
| Loop modifying different collection - CAN convert
๐
|
Skipped |
Different but acceptable behavior - converts to collect() instead of forEach() |
0.000 |
| Loop with index in conditional logic (i%2==0) - should NOT convert
๐
|
Success |
|
0.064 |
| Simple indexed array loop (only array[i]) - CAN convert to IntStream
๐
|
Success |
|
0.081 |
| Simple iterator loop on CopyOnWriteArrayList - CAN convert
๐
|
Skipped |
Different but acceptable behavior - converts to stream instead of enhanced-for |
0.000 |
| Loop with list.add() - should NOT convert
๐
|
Success |
|
0.153 |
| Loop with getter method receiver (getList().add) - should NOT convert (CRASHES)
๐
|
Skipped |
BUG: IllegalArgumentException - Invalid identifier : >getList()< - needs fix in EnhancedForHandler |
0.000 |
| Enhanced for-loop on ConcurrentHashMap values - CAN convert
๐
|
Success |
|
0.082 |
| Loop with list.clear() - should NOT convert
๐
|
Success |
|
0.058 |
| Loop with field access receiver (this.list.remove) - should NOT convert (BUG)
๐
|
Skipped |
BUG: Field access modification detection not blocking conversion - Issue #670 |
0.000 |
| Loop with index arithmetic AND collection modification - should NOT convert
๐
|
Success |
|
0.056 |
| Name |
Status |
Type |
Time(s) |
| Iterator filter+map+collect: stream().filter().map().collect()
๐
|
Skipped |
Iterator filter+map+collect pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| Multiple next() calls prevent conversion - unsafe pattern
๐
|
Success |
|
0.071 |
| Iterator collect to Set: stream().collect(Collectors.toSet())
๐
|
Skipped |
Iterator collect-to-Set pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| for-loop-iterator forEach: list.stream().forEach(item -> println(item))
๐
|
Success |
|
0.106 |
| Iterator map+collect: stream().map(transform).collect(toList())
๐
|
Skipped |
Iterator map+collect pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| Iterator map with method reference: stream().map(String::toUpperCase)
๐
|
Skipped |
Iterator map pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| Break statement prevents conversion - not yet supported
๐
|
Success |
|
0.089 |
| Iterator filter+collect: stream().filter(predicate).collect(toList())
๐
|
Skipped |
Iterator filter+collect pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| Iterator sum reduction: stream().mapToInt(i -> i).sum()
๐
|
Skipped |
Iterator reduce pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| Iterator.remove() prevents conversion - unsafe pattern
๐
|
Success |
|
0.065 |
| Labeled continue prevents conversion - unsafe pattern
๐
|
Success |
|
0.084 |
| while-iterator forEach: list.stream().forEach(item -> println(item))
๐
|
Success |
|
0.153 |
| Iterator collect to List: stream().collect(Collectors.toList())
๐
|
Skipped |
Iterator collect-to-List pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce |
0.000 |
| External state modification prevents conversion - side effect
๐
|
Skipped |
External state modification detection needs fixing - currently converts when it shouldn't |
0.000 |
| forEach with block lambda for multiple statements
๐
|
Success |
|
0.130 |
| Name |
Status |
Type |
Time(s) |
| Null filter: filter(item -> (item != null))
๐
|
Success |
|
0.208 |
| Map+collect: stream().map(transform).collect(Collectors.toList())
๐
|
Success |
|
0.143 |
| Side effects prevent collect conversion
๐
|
Skipped |
V2 incorrectly wraps counter++ as side-effect map instead of detecting external state modification |
0.000 |
| Identity collect to List: stream().collect(Collectors.toList())
๐
|
Success |
|
0.208 |
| Array source collect: Arrays.stream(array).toList()
๐
|
Skipped |
V1 doesn't handle Arrays import with java.util.* - needs specific import setup |
0.000 |
| Filter+collect: stream().filter(predicate).toList()
๐
|
Success |
|
0.119 |
| Identity collect to Set: stream().collect(Collectors.toSet())
๐
|
Success |
|
0.127 |
| Complex filter+map: multiple conditions and transformations
๐
|
Success |
|
0.110 |
| Filter+map+collect chain: optimal ordering for performance
๐
|
Success |
|
0.088 |
| Map with lambda (method reference candidate): stream().map(item -> item.toUpperCase())
๐
|
Success |
|
0.168 |
| Intermediate read transformed with forEach
๐
|
Success |
|
0.133 |
| Multiple collect targets converted to forEach
๐
|
Success |
|
0.127 |
| Array map+collect: Arrays.stream(arr).map(f).toList()
๐
|
Skipped |
V1 doesn't handle Arrays import with java.util.* - needs specific import setup |
0.000 |
| Map with complex expression: stream().map(x -> x * 2)
๐
|
Success |
|
0.154 |
| Break statement prevents collect conversion
๐
|
Success |
|
0.102 |
| Name |
Status |
Type |
Time(s) |
| Nested generics: List<List<T>> type inference
๐
|
Success |
|
0.176 |
| Single element: consistent transformation
๐
|
Success |
|
0.134 |
| Unused element: lambda with unused parameter
๐
|
Skipped |
Pattern not converting in V1 - needs investigation |
0.000 |
| Empty collection: stream handles empty input correctly
๐
|
Success |
|
0.242 |
| Performance: use direct forEach when possible
๐
|
Success |
|
0.122 |
| Method chaining: element.method1().method2()
๐
|
Success |
|
0.092 |
| Null-safe operation: filter before map
๐
|
Success |
|
0.080 |
| No-op loop: empty body still transforms
๐
|
Success |
|
0.081 |
| Variable shadowing: lambda preserves scope
๐
|
Success |
|
0.189 |
| Chained map: map(x -> x.m1().m2())
๐
|
Success |
|
0.122 |
| Name conflict: avoid variable name collisions
๐
|
Success |
|
0.107 |
| Primitive array: use IntStream for int[] to avoid boxing
๐
|
Success |
|
0.101 |
| Null check filter: filter(item -> item != null)
๐
|
Success |
|
0.109 |
| Wildcard generics: List<? extends T> handling
๐
|
Success |
|
0.176 |
| Name |
Status |
Type |
Time(s) |
| REDUCE_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.001 |
| ANY_MATCH_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.000 |
| FILTER_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.000 |
| ALL_MATCH_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.000 |
| FOR_EACH_ORDERED_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.000 |
| NONE_MATCH_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.000 |
| STREAM_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.003 |
| FOR_EACH_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.000 |
| MAP_METHOD delegates to LibStandardNames
๐
|
Success |
|
0.001 |
| Name |
Status |
Type |
Time(s) |
| testRenderCollect_ToList
๐
|
Success |
|
0.002 |
| testRenderSource_ExplicitRange
๐
|
Success |
|
0.002 |
| testRenderMap
๐
|
Success |
|
0.000 |
| testRenderReduce_WithIdentity
๐
|
Success |
|
0.004 |
| testRenderDirectForEach_Collection
๐
|
Success |
|
0.000 |
| testRenderSource_Array
๐
|
Success |
|
0.000 |
| testRenderDirectForEach_Array_FallbackToStream
๐
|
Success |
|
0.000 |
| testRenderFind_First
๐
|
Success |
|
0.000 |
| testRenderSource_Collection
๐
|
Success |
|
0.001 |
| testRenderMatch_NoneMatch
๐
|
Success |
|
0.001 |
| testRenderDirectForEach_Iterable
๐
|
Success |
|
0.000 |
| testRenderMatch_AllMatch
๐
|
Success |
|
0.004 |
| testRenderForEach_Ordered
๐
|
Success |
|
0.001 |
| testRenderForEach_SingleStatement
๐
|
Success |
|
0.001 |
| testRenderSorted_NoComparator
๐
|
Success |
|
0.000 |
| testRenderFlatMap
๐
|
Success |
|
0.004 |
| testRenderSource_IntRange
๐
|
Success |
|
0.001 |
| testRenderPeek
๐
|
Success |
|
0.000 |
| testRenderSkip
๐
|
Success |
|
0.000 |
| testRenderFind_Any
๐
|
Success |
|
0.001 |
| testRenderForEach_MultipleStatements
๐
|
Success |
|
0.001 |
| testRenderSource_ExplicitRangeWithVariables
๐
|
Success |
|
0.000 |
| testComplexPipeline
๐
|
Success |
|
0.001 |
| testRenderSorted_WithComparator
๐
|
Success |
|
0.005 |
| testRenderSource_Iterable
๐
|
Success |
|
0.001 |
| testGetAST
๐
|
Success |
|
0.000 |
| testRenderFilter
๐
|
Success |
|
0.001 |
| testRenderDistinct
๐
|
Success |
|
0.000 |
| testRenderCount
๐
|
Success |
|
0.004 |
| testRenderLimit
๐
|
Success |
|
0.000 |
| testRenderReduce_WithoutIdentity
๐
|
Success |
|
0.000 |
| testRenderCollect_ToSet
๐
|
Success |
|
0.001 |
| testRenderMatch_AnyMatch
๐
|
Success |
|
0.000 |
| Name |
Status |
Type |
Time(s) |
| test_ChainingMap
๐
|
Success |
|
0.121 |
| test_NestedFilterCombination
๐
|
Success |
|
0.133 |
| test_MultipleContinueFilters
๐
|
Success |
|
0.135 |
| test_ChainingFilterMapForEachConvert
๐
|
Success |
|
0.098 |
| test_NonFilteringIfChaining
๐
|
Success |
|
0.179 |
| test_ContinuingIfFilterSingleStatement
๐
|
Success |
|
0.134 |
| test_ContinueWithNestedConditions
๐
|
Success |
|
0.095 |
| test_ContinueWithMapAndForEach
๐
|
Success |
|
0.097 |
| test_FilterWithComplexCondition
๐
|
Success |
|
0.095 |
| test_ChainedFilterAndMapOperations
๐
|
Success |
|
0.102 |
| test_SmoothLongerChaining
๐
|
Success |
|
0.167 |
| Name |
Status |
Type |
Time(s) |
| Loop clearing iterated collection (list.clear) - should NOT convert
๐
|
Success |
|
0.109 |
| test_Break_Statement_ShouldNotConvert
๐
|
Success |
|
0.118 |
| Loop with both break and continue - should NOT convert
๐
|
Success |
|
0.084 |
| Loop adding to iterated collection (list.add) - should NOT convert
๐
|
Success |
|
0.154 |
| Loop returning different values in different branches - should NOT convert
๐
|
Success |
|
0.080 |
| test_Throw_Statement_ShouldNotConvert
๐
|
Success |
|
0.077 |
| Loop modifying external variable (not accumulator pattern) - should NOT convert
๐
|
Success |
|
0.092 |
| test_External_variable_modification_with_side_effects_converts
๐
|
Success |
|
0.154 |
| test_Labeled_Continue_ShouldNotConvert
๐
|
Success |
|
0.113 |
| test_EarlyReturn_WithSideEffects_ShouldNotConvert
๐
|
Success |
|
0.125 |
| Loop modifying iterated collection (list.remove) - should NOT convert
๐
|
Success |
|
0.087 |